Conversation
Android (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f70acbf+dirty | 373.39 ms | 382.81 ms | 9.43 ms |
| d9f44bb+dirty | 400.64 ms | 431.65 ms | 31.01 ms |
| f3b058c+dirty | 501.18 ms | 536.70 ms | 35.52 ms |
| 8e653ac+dirty | 360.28 ms | 372.04 ms | 11.76 ms |
| eb07ba3 | 470.04 ms | 473.35 ms | 3.31 ms |
| 74979ac+dirty | 444.68 ms | 479.36 ms | 34.68 ms |
| 3bd3f0d+dirty | 447.21 ms | 472.31 ms | 25.10 ms |
| 785ffb1 | 471.92 ms | 460.96 ms | -10.96 ms |
| 6416d6c+dirty | 407.30 ms | 422.00 ms | 14.70 ms |
| ba75c7c | 367.72 ms | 369.16 ms | 1.44 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| f70acbf+dirty | 17.75 MiB | 19.68 MiB | 1.94 MiB |
| d9f44bb+dirty | 43.75 MiB | 48.40 MiB | 4.64 MiB |
| f3b058c+dirty | 43.75 MiB | 48.07 MiB | 4.32 MiB |
| 8e653ac+dirty | 17.75 MiB | 19.75 MiB | 2.00 MiB |
| eb07ba3 | 17.75 MiB | 20.15 MiB | 2.41 MiB |
| 74979ac+dirty | 43.75 MiB | 48.41 MiB | 4.66 MiB |
| 3bd3f0d+dirty | 17.75 MiB | 19.70 MiB | 1.95 MiB |
| 785ffb1 | 17.75 MiB | 20.15 MiB | 2.41 MiB |
| 6416d6c+dirty | 43.75 MiB | 48.05 MiB | 4.30 MiB |
| ba75c7c | 17.75 MiB | 20.15 MiB | 2.41 MiB |
Android (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a206511+dirty | 331.54 ms | 356.98 ms | 25.44 ms |
| 8ff81c0+dirty | 392.47 ms | 431.52 ms | 39.05 ms |
| 170d5ea+dirty | 348.79 ms | 406.94 ms | 58.15 ms |
| bb4ea33+dirty | 360.73 ms | 375.02 ms | 14.29 ms |
| 80e4616+dirty | 427.31 ms | 461.15 ms | 33.84 ms |
| 9a81842+dirty | 508.08 ms | 566.65 ms | 58.56 ms |
| 64cd15c+dirty | 488.79 ms | 483.54 ms | -5.24 ms |
| 6bd9054+dirty | 376.24 ms | 407.76 ms | 31.52 ms |
| 73f2455+dirty | 369.33 ms | 398.90 ms | 29.57 ms |
| 23080e5+dirty | 347.29 ms | 381.87 ms | 34.58 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| a206511+dirty | 43.94 MiB | 48.90 MiB | 4.96 MiB |
| 8ff81c0+dirty | 43.94 MiB | 48.87 MiB | 4.93 MiB |
| 170d5ea+dirty | 7.15 MiB | 8.42 MiB | 1.27 MiB |
| bb4ea33+dirty | 43.94 MiB | 48.91 MiB | 4.97 MiB |
| 80e4616+dirty | 43.94 MiB | 49.38 MiB | 5.44 MiB |
| 9a81842+dirty | 43.94 MiB | 48.91 MiB | 4.97 MiB |
| 64cd15c+dirty | 7.15 MiB | 8.42 MiB | 1.27 MiB |
| 6bd9054+dirty | 43.94 MiB | 48.90 MiB | 4.96 MiB |
| 73f2455+dirty | 43.94 MiB | 48.82 MiB | 4.88 MiB |
| 23080e5+dirty | 7.15 MiB | 8.41 MiB | 1.26 MiB |
iOS (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9b50d32+dirty | 1216.53 ms | 1221.64 ms | 5.10 ms |
| 083f560+dirty | 1227.33 ms | 1242.02 ms | 14.69 ms |
| 7480abe+dirty | 1220.53 ms | 1244.18 ms | 23.65 ms |
| d1bfbde+dirty | 1216.83 ms | 1212.83 ms | -3.99 ms |
| a2bb688+dirty | 1223.53 ms | 1232.90 ms | 9.37 ms |
| 652f785+dirty | 1219.66 ms | 1223.62 ms | 3.96 ms |
| 6c36ba5+dirty | 1214.56 ms | 1216.52 ms | 1.96 ms |
| 9bf5446+dirty | 1206.20 ms | 1206.69 ms | 0.48 ms |
| f081f58+dirty | 1219.10 ms | 1217.57 ms | -1.53 ms |
| 0dff710+dirty | 1207.23 ms | 1203.26 ms | -3.97 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9b50d32+dirty | 3.41 MiB | 4.59 MiB | 1.18 MiB |
| 083f560+dirty | 2.63 MiB | 4.00 MiB | 1.36 MiB |
| 7480abe+dirty | 2.63 MiB | 3.96 MiB | 1.33 MiB |
| d1bfbde+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| a2bb688+dirty | 2.63 MiB | 3.99 MiB | 1.36 MiB |
| 652f785+dirty | 3.41 MiB | 4.57 MiB | 1.16 MiB |
| 6c36ba5+dirty | 3.38 MiB | 4.60 MiB | 1.22 MiB |
| 9bf5446+dirty | 3.41 MiB | 4.59 MiB | 1.18 MiB |
| f081f58+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 0dff710+dirty | 3.44 MiB | 4.59 MiB | 1.15 MiB |
antonis
left a comment
There was a problem hiding this comment.
Blocked on the addition of 0.83.1 in https://github.com/react-native-community/rn-diff-purge
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9b50d32+dirty | 1210.36 ms | 1218.41 ms | 8.05 ms |
| 083f560+dirty | 1215.27 ms | 1231.96 ms | 16.69 ms |
| 7480abe+dirty | 1219.84 ms | 1223.60 ms | 3.76 ms |
| d1bfbde+dirty | 1221.30 ms | 1218.70 ms | -2.60 ms |
| a2bb688+dirty | 1244.82 ms | 1238.60 ms | -6.22 ms |
| 652f785+dirty | 1216.42 ms | 1212.21 ms | -4.21 ms |
| 6c36ba5+dirty | 1208.55 ms | 1207.38 ms | -1.17 ms |
| 9bf5446+dirty | 1218.60 ms | 1210.45 ms | -8.15 ms |
| f081f58+dirty | 1208.37 ms | 1215.56 ms | 7.19 ms |
| 0dff710+dirty | 1194.90 ms | 1196.15 ms | 1.25 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 9b50d32+dirty | 3.41 MiB | 4.59 MiB | 1.18 MiB |
| 083f560+dirty | 3.19 MiB | 4.56 MiB | 1.38 MiB |
| 7480abe+dirty | 3.19 MiB | 4.53 MiB | 1.35 MiB |
| d1bfbde+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| a2bb688+dirty | 3.19 MiB | 4.56 MiB | 1.37 MiB |
| 652f785+dirty | 3.41 MiB | 4.57 MiB | 1.16 MiB |
| 6c36ba5+dirty | 3.38 MiB | 4.60 MiB | 1.22 MiB |
| 9bf5446+dirty | 3.41 MiB | 4.59 MiB | 1.18 MiB |
| f081f58+dirty | 3.41 MiB | 4.58 MiB | 1.17 MiB |
| 0dff710+dirty | 3.44 MiB | 4.59 MiB | 1.15 MiB |
|
We don't have any guidelines regarding that but in general I don't think that bumping RN version for e2e tests is that needed for every minor version, it's just too much hassle with not so many benifits. Maybe we should do it only for major versions? |
antonis
left a comment
There was a problem hiding this comment.
0.84.0-rc.0 and will keep this in draft till the final release
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog. This PR will not appear in the changelog. 🤖 This preview updates automatically when you update the PR. |
…guments Enhances the patch script to use install_modules_dependencies() instead of hardcoded React/React-Core dependencies. This is the modern approach for React Native 0.60+ that properly handles all framework configurations (static, dynamic, etc.) and automatically resolves the correct React Native dependencies. This should fix the "Undefined symbols: _RCTRegisterModule" error when building RN 0.84.0 with dynamic frameworks on iOS. The patch now uses the same defensive pattern as RNSentry.podspec, with a fallback to React-Core for older RN versions that don't have install_modules_dependencies defined. Tested locally and verified: - Patch successfully replaces s.dependency "React" - Generated Ruby syntax is valid - Idempotent (safe to run multiple times) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
| patched = patched.replace(/\s+s\.dependency\s+['"]React['"]\s*\n/g, installModulesDepsBlock + '\n'); | ||
| } else if (hasReactCoreDep) { | ||
| debug.log("Replacing s.dependency 'React/Core' with install_modules_dependencies(s)"); | ||
| patched = patched.replace(/\s+s\.dependency\s+['"]React\/Core['"]\s*\n/g, installModulesDepsBlock + '\n'); | ||
| } else if (hasReactCoreDepOnly) { | ||
| debug.log("Replacing s.dependency 'React-Core' with install_modules_dependencies(s)"); | ||
| patched = patched.replace(/\s+s\.dependency\s+['"]React-Core['"]\s*\n/g, installModulesDepsBlock + '\n'); | ||
| } | ||
|
|
||
| fs.writeFileSync(buildGradlePath, patched); | ||
| debug.log('Patched react-native-launch-arguments build.gradle successfully!'); | ||
| fs.writeFileSync(podspecPath, patched); | ||
| debug.log('Patched react-native-launch-arguments podspec successfully!'); |
There was a problem hiding this comment.
Bug: The regex for detecting a dependency is more permissive than the regex for replacing it, which can cause the patch to fail silently while reporting success.
Severity: MEDIUM
Suggested Fix
Unify the detection and replacement logic. Either make the replacement regex more flexible to not require a trailing newline, or make the detection regex stricter to match the replacement's requirements. Additionally, verify that the file content has changed after the replacement operation before reporting success.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: dev-packages/e2e-tests/patch-scripts/rn.patch.launch-arguments.js#L82-L94
Potential issue: The patch script uses different regular expressions for detecting and
replacing dependency lines in a podspec file. The detection regex, for example
`/s\.dependency\s+['"]React['"]/`, will match a line even if it is not followed by a
newline. However, the corresponding replacement regex, `
/\s+s\.dependency\s+['"]React['"]\s*\n/g`, requires a newline `\n` at the end. If a
podspec file has a dependency declaration without a trailing newline, the script will
detect the dependency, but the replacement will fail. The script does not verify that
the replacement was successful, leading to a silent failure where it reports success but
the file remains unpatched, which can cause subsequent build failures.
📢 Type of change
📜 Description
Bump E2E tests to 0.84.-RC
💡 Motivation and Context
https://github.com/facebook/react-native/releases/tag/v0.84.0
💚 How did you test it?
CI, Manual
📝 Checklist
sendDefaultPIIis enabled🔮 Next steps
#skip-changelog